The use of remote program execution, such as running virtual computer systems (virtual machines) on behalf of customers, and storage services has proliferated in recent years. The resources for remote program execution and storage are often provided by computing resource providers who leverage large-scale networks of computers, servers and storage drives to enable clients, including content providers, online merchants and the like, to host and execute a variety of applications and web services. The content providers and online merchants, who traditionally used on-site servers and storage equipment to host their websites and store and stream content to their customers, often forego on-site hosting and storage and turn to using the resources of the computing resource providers. Remote program execution and storage services allows content providers and online merchants, among others, to efficiently and adaptively satisfy their computing needs, whereby the computing and storage resources used by the content providers and online merchants are added or removed from a large pool provided by a computing resource provider as needed and depending on their needs.
It is often important for customers and users to be able to update the application definitions used to perform remote program execution. Updating the application definitions may often necessitate pushing the updated application definitions to a large fleet of devices, whereby it is advantageous to update the application definitions of the fleet of devices in an efficient manner.